今天主要會是針對 kubelet 的訪問,如何去限制取得 meta data 以及 endpoint 的設定
kubelet 是在每個節點上運行的主要「節點代理程式」。它可以使用以下其中一種方式向 API 伺服器註冊:
kubelet 是基於 PodSpec 來工作的。每個 PodSpec 是一個描述 Pod 的 YAML 或 JSON 物件。kubelet 接受透過各種機制(主要是透過 apiserver)提供的一組 PodSpec,並確保這些 PodSpec 中描述的容器處於運行狀態且運行狀況良好。kubelet 不會管理非由 Kubernetes 建立的容器。
Kubeadm 並不會一起安裝kubelet
kubelet 可以分爲kubelet service 以及 kubelet-config 檔,透過在kubelet service 中用 --config
的方式指定檔案
ps -aux | grep kubelet
查看 相關配置訊息提供兩個 port 可以訪問
curl -sk https:/localhost:10250/pods
curl -sk https://localhost:10250/logs/syslog
curl -sk http://localhost:10255/metrics
限制訪問
Authentication =>
(1) 透過設定bash --anonymous-auth=false
禁止訪問
(2) 給定ca 當訪問時需要給 key 以及 certbash curl -sk https://localhost:10250/pods/ --key kubelet-key.pem --cert kubelet-cert.pem
(3) 針對 10255 port 可以將bash --read-only-port
由 10255 port 改為 0
Authorization =>
(1) 可設定bash --authorization-mode=Webhook
當訪問時會去kube-apiserver 確認是否有權限